﻿/**
 * Peter
 * Created by: Peter Development Team
 *    http://peter.codeplex.com/
 * 
 * GNU General Public License version 2 (GPLv2)
 *    http://peter.codeplex.com/license
 *
 *  This code is provided on an AS IS basis, with no WARRANTIES,
 *  CONDITIONS or GUARANTEES of any kind.
 *
 **/

namespace Peter.Common.Interfaces
{
   /// <summary>
   /// Interface used for file change notifications.
   /// </summary>
   public interface IFileChangedNotification
   {
      /// <summary>
      /// Invoked when a file has changed.
      /// </summary>
      /// <param name="fullPath">Full path to file.</param>
      void FileChanged (string fullPath);

      /// <summary>
      /// Invoked when a file has been created.
      /// </summary>
      /// <param name="fullPath">Full path to file.</param>
      void FileCreated (string fullPath);

      /// <summary>
      /// Invoked when a file has deleted.
      /// </summary>
      /// <param name="fullPath">Full path to file.</param>
      void FileDeleted (string fullPath);

      /// <summary>
      /// Invoked when a file has changed.
      /// </summary>
      /// <param name="fullPath">Full path to file.</param>
      /// <param name="oldFullPath">The full path to the file before the rename.</param>
      void FileRenamed (string fullPath, string oldFullPath);
   }
}
